// 导入express 包
const express = require('express');

//创建express 对象
const expressModule = express();

//创建一个路由
expressModule.get('/home',(request,response)=>{
 
    //request 请求
    //原生操作
    console.log(request.method);
    console.log(request.url);
    console.log(request.httpVersion);
    console.log(request.headers);
    
    //express操作
    console.log(request.path);   //获取路径
    console.log(request.query);  //获取查询条件（对象形式）

    //获取ip
    console.log(request.ip);  

    //获取请求头的操作
    console.log(request.get("Host")); //获取浏览器请求头中的某个属性的值
    

    //response 响应
    //原生响应
    // response.statusCode = 404;
    // response.statusMessage="";
    // response.setHeader("","");
    // response.write("hello express");
    // response.end("response");

    //express响应
    response.status(500);
    response.set('aaa','bbb'); //设置响应头
    response.send("你好，express");  //没乱码，自动添加utf-8的响应头
    response.status(500).set('aaa','bbb').send("你好，express"); //此写法也正确

    //其他响应
    response.redirect('http://baidu.com'); //重定向
    response.download('./package.json'); //下载
    response.json(对象); //响应对象的json
    response.sendFile(__dirname+'/home.html'); //相应文件内容
});

//:id 相当于一个占位符,可以自定义 :abc 也是可以的
expressModule.get('/:id.html',(request,response)=>{
    //获取路由参数
    let {id} = request.params; //解构赋值 获取传过来的值  和占位符的名字保持一致
    
    response.end("home.");
});

//不加具体路径的路由
expressModule.get('/',(request,response)=>{
    response.end("home.");
});

expressModule.post('/login',(request,response)=>{
    response.end("login.");
});

//接受get 和 post
expressModule.all('/test',(request,response)=>{
    response.end("all test.");
})

//接收所有路径（最后托底的路由）
expressModule.all('*',(request,response)=>{
    response.end("404");
})

//监听端口，启动服务

expressModule.listen(9000,()=>{
    console.log("服务已经启动，端口9000正在监听中...");
});